/*
* $Id: SettingsManager.h 56 2010-03-09 23:19:13Z volok-aleksej@yandex.ru $
*
* Copyright 2008-2009 by Volokitin Alexey
* All rights reserved
*
*/
#ifndef _SETTINGS_MANAGER_H_
#define _SETTINGS_MANAGER_H_

class CSettingsManager : public ISettingsManager
{
	class Compare
	{
		std::tstring lastString;
	public:
		Compare();
		bool operator()(const std::tstring& first, const std::tstring& second) const;
	};

	std::map<std::tstring, std::vector<ISetting*>, Compare> m_aSettings;
public:
	CSettingsManager();
	~CSettingsManager();

	virtual std::vector<ISetting*> GetSettings();
	virtual std::vector<ISetting*> GetSettings(const std::tstring& strComponentName);
	virtual ISetting* GetSetting(const std::tstring& strSettingName);
	virtual void Free();
};

#endif /*_SETTINGS_MANAGER_H_*/